﻿using Dapper;
using HBase;
using System;

namespace Persistence {
    public class CoreStockDet : ChildrenEntity, ICloneable {

        public DateTime changeTime {
            get; set;
        }
        public string pCode {//String 用于模糊查询
            get; set;
        }
        public String pLoc {//String 用于模糊查询
            get; set;
        }
        [WriteAttribute(false)]
        public long rLocId {
            get; set;
        }
        public long itemId {
            get; set;
        }
       
        /// <summary>
        /// 库外0，入库中1，库存2，出库中3,移库中4,出库完成-1
        /// </summary>
        public int status {
            get; set;
        }
        public double countDb {
            //数量
            get; set;
        }
        public int unit {
            //单位
            get; set;
        }
        public string barCode {
            get; set;
        }
        public DateTime createTime {
            get; set;
        }
        public DateTime? outTime {
            get; set;
        }

        public long pkId {
            get; set;
        }
        //在托盘的第几个位置
        public int bPos {
            get; set;
        }
        public long doiDetId { get; set; }
        public int doiType { get; set; }
        public long dooDetId { get; set; }
        public int dooType { get; set; }
        public string batchNo { get; set; }
        public long batchId { get; set; }
        
    }
    public class DetConst {
        public const int DoiTypePy = 1;//盘盈 
        public const int DoiTypeNO = 2;//直接入库 无单据入库
        public const int DoiTypeDj = 3;//erp 对应的单据类型


        public const int DooTypePk = 1;//盘亏 
        public const int DooTypeNO = 2;//直接出库 无单据出库
        public const int DooTypeDj = 3;//erp 对应的单据类型
    }
    public enum StockDetailStatus {
        编辑 = 1,//未绑定任何数据的状态
        下线 = 2,
        库外 = 3,//绑定托盘
        入库中 = 15,//绑定后
        库存 = 29,
        出库中 = 35,
        盘存 = 46, //盘库原始数量
        盘亏中 = 47,
        盘盈 = 48, //新增数量
        上限 = 70,//无需人工确定，在自动对接系统中
        单据自动出库 = 71,//无需人工确定，在自动对接系统中
        单据盘亏出库 = 72,//盘库中
        单据手动出库 = 73,//从出库中
        直接库外出库 = 74,//库外 
        直接库存出库 = 75,//库存
        直接编辑出库 = 76,//
    }
}


//                  ++待入库 --------------->*直接编辑出库
//                     |
//                     V   
// @单据自动出库<----> 库外 --------------->*直接库外出库
//               /|\          |              @单据手动出库 
//                |           V                                                    
//             出库中       入库中 
//               /|\          |    
//                |           V                                                     
// *库存直接出<-----库存<------------------盘盈++                             
//                    |            /|\                                        
//                    V             |                                        
//                  盘存------------|------>盘亏中---->@单据盘亏出库                                    
//                   
//                   
//                                                                
//                                                     
//                 